home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / tex / files / !tex / mfinputs / csc / mf
Encoding:
Text File  |  1988-02-26  |  3.2 KB  |  72 lines

  1. % This is CSC.MF in text format, as of Mar 31, 1986.
  2. % Caps and Small Caps in Computer Modern Roman
  3.  
  4. font_coding_scheme:=if ligs=0: "TeX typewriter text"
  5.  else: "TeX text without f-ligatures" fi;
  6. spanish_shriek=oct"016"; spanish_query=oct"017";
  7.  
  8. mode_setup; font_setup;
  9. input romanu;  % upper case (majuscules)
  10. input greeku;  % upper case greek letters
  11. input romand;  % numerals
  12. input romanp;  % ampersand, question marks, currency sign
  13. input romspu;  % uppercase specials (\AE, \OE, \O)
  14. input punct;  % punctuation symbols common to all roman and italic
  15. input accent;  % accents common to roman and italic text
  16. input romsub;  % substitutes for ligatures
  17. if ligs>0: input comlig; fi  % ligatures common with italic
  18.  
  19. ligtable "!": "`" =: spanish_shriek;
  20. ligtable "?": "`" =: spanish_query;
  21. font_slant slant; font_x_height x_height#;
  22. if monospace: font_normal_space 9u#; % no stretching or shrinking
  23.  font_quad 18u#;
  24.  font_extra_space 9u#;
  25. else: font_normal_space 6u#+2letter_fit#;
  26.  font_normal_stretch 3u#; font_normal_shrink 2u#;
  27.  font_quad 18u#+4letter_fit#;
  28.  font_extra_space 2u#;
  29.  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
  30.  ligtable "P": "T": "Y": "a" kern kk#, "A" kern kk#;
  31.  ligtable "F": "V": "W": if serifs: "a" kern kkk#, "A" kern kkk#,
  32.   else: "a" kern kk#, "A" kern kk#, fi
  33.   "K": "X": "o" kern k#, "O" kern k#, "c" kern k#, "C" kern k#,
  34.    "g" kern k#, "G" kern k#, "q" kern k#, "Q" kern k#;
  35.  ligtable "O": "D": "x" kern k#, "X" kern k#, "w" kern k#, "W" kern k#,
  36.    "a" kern k#, "A" kern k#, "v" kern k#, "V" kern k#, "y" kern k#, "Y" kern k#;
  37.  ligtable "A": if serifs: "R": fi "c" kern k#, "C" kern k#,
  38.    "o" kern k#, "O" kern k#, "g" kern k#, "G" kern k#,
  39.    "u" kern k#, "U" kern k#, "q" kern k#, "Q" kern k#,
  40.   "L": "T" kern kk#, "t" kern kk#, "Y" kern kk#, "y" kern kk#,
  41.    "V" kern kkk#, "v" kern kkk#, "W" kern kkk#, "w" kern kkk#;
  42.  ligtable "I": "I" kern -k#; fi % Richard III
  43. % ligature programs for |"-"|, |"`"|, and |"'"| are in the {\tt comlig} file
  44.  
  45. %%% fine lower
  46. forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
  47.  body_height, cap_height, x_height, bar_height, comma_depth,
  48.  flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
  49.  cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
  50.  o, apex_o:  $.#:=lower.$.#; endfor
  51. fudge:=lower.fudge;
  52. font_setup; % now try again with |lower| settings
  53. extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
  54. code_offset:=ASCII"a" - ASCII"A";
  55. input romanu;  % majuscules (in lowercase positions)
  56. code_offset:=-3;
  57. input romspu;  % \AE, \OE, \O\ (in positions of \ae, \oe, \o)
  58. code_offset:=0;
  59. input cscspu;  % substitutes for the remaining characters of romspl
  60. if not monospace:
  61.  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
  62.  ligtable "p": "t": "y": "a" kern kk#;
  63.  ligtable "f": "v": "w": "a" kern if serifs: kkk# else: kk#\\fi,
  64.   "k": "x": "o" kern k#, "c" kern k#, "g" kern k#, "q" kern k#;
  65.  ligtable "o": "d": "x" kern k#, "w" kern k#, "a" kern k#,
  66.    "v" kern k#, "y" kern k#;
  67.  ligtable "a": if serifs: "r": fi "c" kern k#, "o" kern k#,
  68.    "g" kern k#, "u" kern k#, "q" kern k#,
  69.   "l": "'" kern kk#, "t" kern kk#, "y" kern kk#, "v" kern kkk#, "w" kern kkk#;
  70.  ligtable "i": "i" kern -k#; fi % skiing
  71. bye.
  72.